I can see why you were having issues with fanout exchanges.
However, if you have multiple bindings for the same exchange but with
different keys, your solution will produce duplicate results.
For instance:
MQ.queue("auto").bind("myExchange", { key: "key1" } ...);
MQ.queue("auto").bind("myExchange", { key: "key2" } ...);
Now if a message is published on myExchange with routing key key1,
both of the above bindings handlers will be called, which is not
desired behavior.
So I think there is a meet in the middle scenario, where I can check
to see if the binding is a topic exchange, and if it is, then I will
ensure a match, otherwise I will just fire the event for that binding.
Thanks,
Dan