1. A method of routing contacts in a contact center, comprising: receiving, by a server of the contact center, a registration from an agent of the contact center, wherein the registration identifies at least one attribute of a future contact the agent has an interest in receiving; receiving, by the server of the contact center, an incoming contact to the contact center; identifying, by the server of the contact center, a context of the incoming contact comprising a plurality of contact attributes; determining, by the contact center, that the at least one attribute of the future contact matches at least one of the plurality of contact attributes; determining, by the server of the contact center, whether the agent of the contact center is available to receive the incoming contact; and when the agent of the contact center is available, routing, by the server of the contact center, the incoming contact to a first agent device associated with the agent of the contact center.