Rolled back the part where I decoupled matching from dispatch, as I did not realize they were intentionally related.  This had the unfortunate side effect of making the PathMatchObserver integration harder to test, so the test is ignored for now.