fixed duplicate key exception

If the value of VaryByCustom is equal to a key that has already been
added to the route values, there will be a conflict.  Instead of add, it
now adds or replaces the given key.

<!---
@huboard:{"order":23.0,"milestone_order":27,"custom_state":""}
-->