Methods and systems are disclosed for routing callers to agents in a contact center, along with an intelligent routing system. A method for routing callers includes routing a caller, if agents are available, to an agent based on a pattern matching algorithm (which may include performance based matching, pattern matching based on agent and caller data, computer models for predicting outcomes of agent-caller pairs, and so on). Further, if no agents are available for the incoming caller, the method includes holding the caller in a shadow queue, e.g., a set of callers. When an agent becomes available the method includes scanning all of the callers in the shadow queue and matching the agent to the best matching caller within shadow queue.