anchor.diff:  
       ctx.Items.Returns (new Dictionary<obj,obj>() :> IDictionary<obj,obj>) |> ignore
       ctx.Request.Method.ReturnsForAnyArgs "GET" |> ignore
  -    ctx.Request.Path.ReturnsForAnyArgs (PathString("/api/v2/admin2")) |> ignore
  -    ctx.Response.Body <- new MemoryStream()
  -    let expected = "correct admin2"
  -
  -    task {
  -        let! result = app next ctx
  -
  -        match result with
  -        | None     -> assertFailf "Result was expected to be %s" expected
  -        | Some ctx -> Assert.Equal(expected, getBody ctx)
  -    }
  -
  -[<Fact>]
  -let ``subRoute: Route after nested sub routes has same beginning of path`` () =
  -    let ctx = mockHttpContext Version40
  +    ctx.Request.Path.ReturnsForAnyArgs (PathString(requestPath)) |> ignore
  +    ctx.Response.Body <- new MemoryStream()
  +
  +    task {
  +        let! result = app next ctx
  +
  +        match result with
  +        | None     -> assertFailf "Result was expected to be %s" expected
  +        | Some ctx -> Assert.Equal(expected, getBody ctx)
  +    }
  +
  +let routeAfterSubRoutesWithSimilarPath compatMode requestPath expected =
  +    let ctx = mockHttpContext compatMode
       let app =
           GET >=> choose [
               route "/"    >=> text "Hello World"
  
positive.code: // subRoute Tests
  // ---------------------------------
  
  [<Fact>]
  let ``subRoute: Route with empty route`` () =
      let ctx = mockHttpContext Version40
      let app =
          GET >=> choose [
              route "/"    >=> text "Hello World"
  
negative.code: 
      ctx.Items.Returns (new Dictionary<obj,obj>() :> IDictionary<obj,obj>) |> ignore
      ctx.Request.Method.ReturnsForAnyArgs "GET" |> ignore
      ctx.Request.Path.ReturnsForAnyArgs (PathString(requestPath)) |> ignore
      ctx.Response.Body <- new MemoryStream()
  
      task {
          let! result = app next ctx
  
          match result with
          | None     -> assertFailf "Result was expected to be %s" expected
          | Some ctx -> Assert.Equal(expected, getBody ctx)
      }
  
  [<Fact>]
  let ``subRoute (compatMode 40): Route with empty route`` () =
      subRouteTest Version40 "/api" "api root"
  
  [<Fact>]
  let ``subRoute (compatMode 36): Route with empty route`` () =
      subRouteTest Version36 "/api" "api root"
  
  [<Fact>]
  let ``subRoute (compatMode 40): Normal nested route after subRoute`` () =
      subRouteTest Version40 "/api/users" "users"
  
  [<Fact>]
  let ``subRoute (compatMode 36): Normal nested route after subRoute`` () =
      subRouteTest Version36 "/api/users" "users"
  
  [<Fact>]
  let ``subRoute (compatMode 40): Route after subRoute has same beginning of path`` () =
      subRouteTest Version40 "/api/test" "test"
  
  [<Fact>]
  let ``subRoute (compatMode 36): Route after subRoute has same beginning of path`` () =
      subRouteTest Version36 "/api/test" "test"
  
  [<Fact>]
  let ``subRoute (compatMode 40): Nested sub routes`` () =
      nestedSubRouteTest Version40 "/api/v2/users" "users v2"
  
  [<Fact>]
  let ``subRoute (compatMode 36): Nested sub routes`` () =
      nestedSubRouteTest Version36 "/api/v2/users" "users v2"
  
  [<Fact>]
  let ``subRoute (compatMode 40): Multiple nested sub routes`` () =
      multipleNestedSubRouteTest Version40 "/api/v2/admin2" "correct admin2"
  
  [<Fact>]
  let ``subRoute (compatMode 36): Multiple nested sub routes`` () =
      multipleNestedSubRouteTest Version36 "/api/v2/admin2" "correct admin2"
  
  [<Fact>]
  let ``subRoute (compatMode 40): Route after nested sub routes has same beginning of path`` () =
      routeAfterSubRoutesWithSimilarPath Version40 "/api/v2/else" "else"
  
  [<Fact>]
  let ``subRoute (compatMode 36): Route after nested sub routes has same beginning of path`` () =
      routeAfterSubRoutesWithSimilarPath Version36 "/api/v2/else" "else"
  
  [<Fact>]
  let ``subRoute (compatMode 40): routef inside subRoute`` () =
      routefInsideSubRouteTest Version40 "/api/foo/bar/yadayada" "yadayada"
  
  [<Fact>]
  let ``subRoute (compatMode 36): routef inside subRoute`` () =
      routefInsideSubRouteTest Version36 "/api/foo/bar/yadayada" "yadayada"
  
  // ---------------------------------
  // subRoutef Tests
  