Generalize extension matchers and simplify build