                 home: =>
                     ""
             super options
+            @route /^unit\/(.*?)$/, @renderUnit
+            @route /^search\/(\?.*)/, @renderSearch
+
+        _parseUrlQuery: (path) ->
+            if path.match /^\?.*/
+                keyValuePair = /([^=\/&?]+=[^=\/&?]+)/g
+                keyValStrings = path.match keyValuePair
+                _.object _(keyValStrings).map (s) => s.split '='
+            else
+                false
+
+        _matchResourceUrl: (path) ->
+            found = path.match /^([0-9]+)\/?$/
+            if found
+                id: found[1]
+            else
+                filters: @_parseUrlQuery path
+
+        renderSearch: (path) ->
+            parsedPath = @_matchResourceUrl path
+            if parsedPath.filters?.q?
+                @controller.search parsedPath.filters.q
+
+        renderUnit: (path) ->
+            parsedPath = @_matchResourceUrl path
+            if 'id' of parsedPath
+                @controller.selectUnitById parsedPath.id
+            else if parsedPath.filters?.service?
+                @controller.renderUnitsByServices parsedPath.filters.service
 
         _getFragment: (commandString, parameters) ->
             @fragmentFunctions[commandString]?()

                        include: 'department,municipality,services'
                    success: =>
                        @selectedUnits.trigger 'reset', @selectedUnits
        _selectUnitById: (id) ->
            deferred = $.Deferred()
            unit = @getUnit id
            if unit?

            @services.remove service
            @removeUnits service.get('units').filter (unit) =>
                not @selectedUnits.get unit
            @_resolveImmediately()

        _search: (query) ->
            @selectedPosition.clear()
