This refactoring causes `modern_matcher_from` to be called twice per matcher.  That seems wasteful/unnecessary.