match labels using "|"

MATCH n:foo|:bar works

Does a major refactoring of how ParserPattern handles labels