In some cases, matching a specific field in the data isn't enough. To support more complex matches where a facet option may require knowing more than 1 piece of information to produce a match, a facet should allow a matching function to be specified. That function would have parameters for the item to be matched as well as the facet and option definition.