handle deferred routes correctly. uses jquery $.Deferred