anchor.diff:  %% {"from": "/a",           /a?foo=b        /some/b             foo =:= b
   %% "to": "/some/:foo",
   %%  }}
  +%% 
  +%% {"from": "/a/<foo>"      /a/b            /some/b             foo =:= b
  +%% "to": "/a/b",
  +%% }}
  +%%
  +%% {"from": "/a/<foo>.blah"      /a/b            /some/b        foo =:= b
  +%% "to": "/a/b",
  +%% }}
  +
   
   
   
  
positive.code:     path_to_list(R, [<<"..">>|Acc], DotDotCount+1);
  path_to_list([P|R], Acc, DotDotCount) ->
      P1 = case P of
          <<":", Var/binary>> ->
              to_binding(Var);
          _ -> P
      end,
      path_to_list(R, [P1|Acc], DotDotCount).
  
negative.code:     {ok, Rest, [{?MATCH_ALL, Match}|Bindings]};
  bind_path(_, [], _) ->
      fail;
  bind_path([{bind, {Token, MatchRe}}|RestToken],
          [Match|RestMatch],Bindings) ->
      case re:run(Match, MatchRe, [{capture, all, binary}]) of
          {match, [_, Match1]} ->
              bind_path(RestToken, RestMatch, [{{bind, Token}, Match1}|Bindings]);
          _ ->
              fail 
      end;
  bind_path([{bind, Token}|RestToken],[Match|RestMatch],Bindings) ->
      bind_path(RestToken, RestMatch, [{{bind, Token}, Match}|Bindings]);
  bind_path([Token|RestToken], [Token|RestMatch], Bindings) ->
  