 					
 				else
 					
-					# GOTO, not gonna lie.
-					do ->
-						
-						# Check for any regexs.
-						for key, route of routes
-							if route.regexp?.test path
-								
-								# TODO need to extract params to build
-								# redirectTo, small enough mismatch to ignore
-								# for now.
-								return
-						
-						# Otherwise.
+					match = false
+					
+					# Check for any regexs.
+					for key, route of routes
+						if route.regexp?.test path
+							
+							# TODO need to extract params to build
+							# redirectTo, small enough mismatch to ignore
+							# for now.
+							match = true
+							break
+					
+					# Otherwise.
+					unless match
 						if routes[null]?
 							return res.redirect routes[null].redirectTo
 							

				navigate context, path, body, (delay) ->
					
					process.nextTick ->
						
						# Reload the session, server-side JS socket stuff could
						# have changed it!
						req.session.reload ->
							
							# Don't forget the doctype!
							res.end """
<!doctype html>
#{window.document.innerHTML}
"""
							
							deferred.resolve()
							context.promise = null

			
			unlisten = $rootScope.$on 'shrubFinishedRendering', ->
				unlisten()
				
				# Catch any path changes.
				if path isnt $location.url()
					context.redirect = $location.url()
					
				formFn()
				
			$rootScope.$apply -> $location.path path
