I think this should also work without casting to `MatcherFunc`.  So, have `func(context.Context) (MatcherFuncDecision, error)` as an option in the case switch.