I don't understand why we'd split these into two rewriters. Perhaps just extend `normalizeMatchPredicates` to do labels and properties?