Mew controls guess rules by two variables, `mew-refile-guess-control' and `mew-refile-ctrl-multi'. If you want multiple candidates, set `mew-refile-ctrl-multi' `t'. Otherwise, set it `nil'.
By default, `mew-refile-guess-control' is declared as follows(since it is a declaration, `defvar' is used):
(defvar mew-refile-guess-control
'(mew-refile-guess-by-alist
mew-refile-ctrl-throw
mew-refile-guess-by-newsgroups
mew-refile-guess-by-folder
mew-refile-ctrl-throw
mew-refile-ctrl-auto-boundary
mew-refile-guess-by-thread
mew-refile-ctrl-throw
mew-refile-guess-by-from-folder
mew-refile-ctrl-throw
mew-refile-guess-by-from
mew-refile-ctrl-throw
mew-refile-guess-by-default))
Mew executes every function defined in `mew-refile-guess-control' in order. Each function may guess multiple candidates.
Let's see the following example of `mew-refile-guess-control' action.
If you want to provide all candidates, +aaa - +eee, set `mew-refile-ctrl-multi' `t'. If you want to provide +aaa only, set it `nil'.
If you want +aaa - +ddd but don't want left candidates, in other words, you want +eee only when no candidate is guessed by functions executed before, set `mew-refile-ctrl-multi' `t' and insert `mew-refile-ctrl-throw' between `mew-refile-guess-by-folder' and `mew-refile-guess-by-default'.
`C-uo' displays the flow of guess rules in Message buffer.