anchor.diff:      }, count: 2));
       controller.add(testGetReq);
       controller.add(testPostReq);
  -    
  +
     });
  -  
  +
     test('serve 1', () {
       var controller = new StreamController<HttpRequest>();
       var router = new Router(controller.stream);
  -    var testReq = new HttpRequestMock(new Uri('/foo'));
  +    var testReq = new HttpRequestMock(Uri.parse('/foo'));
       router.serve('/foo').listen(expectAsync1((req) {
         expect(req, testReq);
       }));
  
positive.code:   test ('http method can be used to distinguish route', (){
      var controller = new StreamController<HttpRequest>();
      var router = new Router(controller.stream);
      var testReq = new HttpRequestMock(new Uri('/foo'),method:'GET');
      router.serve('/foo', method:'GET').listen(expectAsync1((req) {
        expect(req, testReq);
      }));
      router.serve('/foo', method:'POST').listen(expectAsync1((_) {}, count:0));
      controller.add(testReq);
    });
    
    test ('if no http method provided, all methods match', (){
      var controller = new StreamController<HttpRequest>();
      var router = new Router(controller.stream);
      var testGetReq = new HttpRequestMock(new Uri('/foo'), method:'GET');
      var testPostReq = new HttpRequestMock(new Uri('/foo'), method:'POST');
      var requests = <HttpRequest>[];
      router.serve('/foo').listen(expectAsync1((request) {
        requests.add(request);
  
negative.code:   test('default', () {
      var controller = new StreamController<HttpRequest>();
      var router = new Router(controller.stream);
      var testReq = new HttpRequestMock(Uri.parse('/bar'));
      testReq.response._onClose = expectAsync0(() {
        expect(testReq.response.statusCode, 200);
      });
  