Simplify pipeline

The match/action split was an artefact of when I was using a dict to
store rules (multiple match tests, but only one action). However since
I moved more to a pipeline model, it makes more sense to use a single
pipe. Especially since there really was no fundamental difference between
the two, and both pipelines could mutate the method.
Update to use single pipeline