Rather than having 2 data structures, just make `_matches` be an `OrderedDict`.