Refactor compile matcher to not use the DSL