The check for duplicate subsets in a rule match wasn't quite right.
Tune Util.firstDuplicate().