anchor.diff:        // then
         expect(params, equals(params_there_and_back));
       });
  +
  +    test('match any tail', () {
  +      // given
  +      var route = new Route("/any-tail/{param}/*");
  +
  +      // when
  +      var match = route.match("/any-tail/value/something/anything");
  +
  +      // then
  +      expect(match, equals({
  +        "param" : "value",
  +        "_tail" : "something/anything",
  +      }));
  +    });
     });
   
     group('Router', () {
  
positive.code:       expect(new Route("//"), isNot(isException));
        expect(new Route("////////////////////////"), isNot(isException));
        expect(new Route("/{anything-here4!@#\$%^&*()\\\n}/"), isNot(isException));
      });
  
      test('matching - static not match', () {
  
negative.code:       expect(() => new Route(""), throwsFormatException);
        expect(() => new Route("not-starting-with-slash/"),throwsFormatException);
        expect(() => new Route("/not-ending-with-slash"),  throwsFormatException);
        expect(() => new Route("/#some-chars-not-allowed/"),throwsFormatException);
        expect(() => new Route("/?some-chars-not-allowed/"),throwsFormatException);
        expect(() => new Route("/!some-chars-not-allowed/"),throwsFormatException);
        expect(() => new Route("/.some-chars-not-allowed/"),throwsFormatException);
        expect(() => new Route("/{not_closed/"),           throwsFormatException);
        expect(() => new Route("/not_open}/"),             throwsFormatException);
        expect(() => new Route("/{{more-brackets}/"),      throwsFormatException);
        expect(() => new Route("/{more-brackets}}/"),      throwsFormatException);
        expect(() => new Route("/{more-asterisks}}/**"),      throwsFormatException);
      });
  
      test('supported format', () {
  