Adds support for custom and multi-value headers
Previously if the rules in a custom matcher function used either a custom Header
implementation or multi vlaue headers the function would fail to match. This fixes that.
With thanks to @winterstefan for the bug report and fix