Jesus Rodriguez has an example of defining custom message filter types for use by the Dublin forwarding service. One of the early forwarding service design decisions was to use the WCF MessageFilter infrastructure to define the routing table rather than bake the routing logic into the forwarding service code. We have a few included filter types such as action, endpoint address, and XPath against message content, but Jesus builds a message size filter instead.