1. A method for servicing work items in a contact center, comprising: (a) selecting, by one or more processors, a first agent and a first work type and/or a first work item of the first work type; (b) determining, by the one or more processors, a state of the contact center; (c) based on the determined state of the contact center, selecting, by the one or more processors, a composite preference value function from among a plurality of differing composite preference value functions, each composite preference value function being a function of a dynamic preference value and an agent preference value; (d) determining, by the one or more processors, a composite preference value using the selected composite preference value function, wherein the determined composite preference value is a number and is associated with at least one of (i) the first work type, (ii) the first agent, and (iii) the first work item; and (e) based on a comparison of the determined composite preference value with a threshold value, assigning, by the one or more processors, the first agent to service contacts of the first work type and/or the first work item.