         }
         
         if dynamicSegments.count > 0 && dynamicSegments.count == matches.numberOfRanges - 1 {
-            [Int](1 ..< matches.numberOfRanges).forEach { (index) in
-                parameters[dynamicSegments[index-1]] = (route as NSString).substringWithRange(matches.rangeAtIndex(index))
+            for i in (1 ..< matches.numberOfRanges) {
+                parameters[dynamicSegments[i-1]] = (route as NSString)
+                    .substringWithRange(matches.rangeAtIndex(i))
             }
         }
         

    internal init(_ pattern: String, queue: dispatch_queue_t, handler: HandlerType) {
        var pattern = pattern
        var dynamicSegments = [String]()
        Route.prepare(&pattern, dynamicSegments: &dynamicSegments)
        
        self.pattern = pattern
        self.queue = queue
        self.handler = handler
        
        if case .Proxy(_) = handler {
            isProxy = true
        } else {
            isProxy = false
        }
        
        self.dynamicSegments = dynamicSegments
    }
    

            }?.first
    }
    
}
