The TopicExchange class has embedded in it a data structure called BindingNode that efficiently looks up routing keys in a tree of binding keys and locates matches.
This improvement separates BindingNode from TopicExchange and makes it into a templated container class. The new class is called TopicKeyNode.
The rationale for this change is to allow other uses of this lookup capability (i.e. for wildcard keys in ACLs, etc.)