anchor.diff:     * braces. Variable name consists of [a-zA-Z0-9_] characters, with the first
      * character being a letter.
      */
  -  Route(pattern) {
  +  Route(String pattern) {
       if (pattern.isEmpty || pattern[0] != '/') {
         throw new FormatException("Url pattern has to begin with '/' character.");
       }
  +    if(pattern[pattern.length - 1] == '*'){
  +      _anyTail = true;
  +      pattern = pattern.substring(0, pattern.length - 1);
  +    }
  +
       if (pattern[pattern.length - 1] != '/') {
  -      throw new FormatException("Url pattern has to end with '/' character.");
  +      throw new FormatException("Url pattern has to end with '/' or '/*' characters.");
       }
   
       RegExp exp = new RegExp(r"^(?:([\w-]*)|{([^{}]*)})$");
  
positive.code:       }
      }
  
      _matchExp = new RegExp(r"^" + matcherParts.join('/') + r"$");
    }
    /**
     * Matches the [url] against the [Route] pattern and returns [Map] of matched.
  
negative.code:   RegExp _matchExp;
    List<String> _variables = [];
    List _urlParts = [];
    bool _anyTail = false;
  
    /**
     * Constructs [Route] using [String] pattern.
  