put triggers first; don't tell unless you have the method

If the triggers are done first then it seems a routine
can be assured that none of the simple triggers are true.

The InconsistenAssumption error was being emitted when
we tried to tell something. Don't use tell unless you are
going to actually start the process. Hence, put it in the
else part of the `try`.
I mean use `sorted` instead of `list`, but still call shuffle. The order of `list(set)` is not deterministic and in general depends on the value of the PYTHONHASHSEED and the order that the set was created (will beta_rules always be in the same order?).