     ///
     /// Convenience initializer
     ///
-    convenience init(method: RouterMethod, pattern: String? , handler: RouterHandler) {
-
-        self.init(method: method, pattern: pattern, middleware: RouterMiddlewareGenerator(handler: handler))
+    convenience init(method: RouterMethod, pattern: String? , handler: RouterHandler...) {
+
+        self.init(method: method, pattern: pattern, middleware: handler.map{RouterMiddlewareGenerator(handler: $0)})
+    }
+
+    ///
+    /// Convenience initializer
+    ///
+    convenience init(method: RouterMethod, pattern: String? , middleware: RouterMiddleware...) {
+
+        self.init(method: method, pattern: pattern, middleware: middleware)
     }
 
     ///

    ///
    /// - Returns: a RouterElement instance
    ///
    init(method: RouterMethod, pattern: String?, middleware: RouterMiddleware) {

        self.method = method
        self.pattern = pattern
        self.regex = nil
        self.keys = nil
        self.middleware = middleware

        SysUtils.doOnce(&RouterElement.regexInit) {
            do {

    /// - Parameter next: the closure for the next execution block
    ///
    private func processHelper(request: RouterRequest, response: RouterResponse, next: () -> Void) {
        for middleware in middlewares {
            middleware.handle(request, response: response) { () in
                request.params = [:]
                next()
            }
        }
    }

