anchor.diff:                                    ["quux","baz"], 1234, ["b"], 0, RD)).
   
   try_host_binding_noport_test() ->
  -    RD = ignored,
  +    RD = testing,
       Dispatch = [{["foo","bar"], [{["a"],x,y}]},
                   {["baz","quux"],[{["b"],z,q}]},
                   {[m,"quux"],    [{["c"],r,s}]},
  
positive.code:                                   ["quux","no"], 82, ["d"], 0, RD)).
  
  try_host_binding_fullmatch_test() ->
      RD = ignored,
      Dispatch = [{{["foo","bar"],80},[{["a"],x,y}]},
                  {{[foo,"bar"],80},  [{["b"],z,q}]},
                  {{[foo,"bar"],baz}, [{["c"],r,s}]},
  
negative.code:     ?assertEqual(fail, bind(["a","b"], ["a","c"], [], 0)).
  
  try_path_matching_test() ->
      RD = testing,
      ?assertEqual({bar, baz, [], [], ".", ""},
                   try_path_binding([{["foo"], bar, baz}], ["foo"], [], 80, [], 0, RD)),
      Dispatch = [{["a", x], foo, bar},
                  {["b", y], baz, quux},
                  {["b", y, '*'], baz2, quux2}],
      ?assertEqual({foo, bar, [], [{x, "c"}], "../..", []},
                   try_path_binding(Dispatch, ["a","c"], [], 80, [], 0, RD)),
      ?assertEqual({baz, quux, [], [{y, "c"}], "../..", []},
                   try_path_binding(Dispatch, ["b","c"], [], 80, [], 0, RD)),
      ?assertEqual({baz2, quux2, ["z"], [{y, "c"}], "../../..", "z"},
                   try_path_binding(Dispatch, ["b","c","z"], [], 80, [], 0, RD)),
      ?assertEqual({baz2, quux2, ["z","v"], [{y, "c"}], "../../../..", "z/v"},
                   try_path_binding(Dispatch, ["b","c","z","v"], [], 80, [], 0, RD)).
  
  try_path_failing_test() ->
      RD = testing,
      ?assertEqual({no_dispatch_match, ["a"]},
                   try_path_binding([{["b"], x, y}], ["a"], [], 80, [], 0, RD)).
  
  %% host binding
  
  try_host_binding_nohosts_test() ->
      RD = testing,
      PathDispatches = [{["a"], foo, bar},
                        {["b"], baz, quux}],
      ?assertEqual(try_host_binding([{{['*'],'*'},PathDispatches}],
  