anchor.diff:                          TheApplication = proplists:get_value(application, Proplist, State#state.application),
                           TheController = proplists:get_value(controller, Proplist),
                           TheAction = proplists:get_value(action, Proplist),
  -                        CleanParams = lists:foldl(fun(Key, Vars) ->
  -                                    proplists:delete(Key, Vars)
  -                            end, Proplist, [application, controller, action]),
  +						CleanParams = clean_params(Proplist),
                           case UrlOrStatusCode of
                               Url when is_list(Url) ->
                                   {ok, MP} = re:compile("^"++Url++"$"),
  
positive.code:             error_logger:error_msg("Missing or invalid boss.routes file in ~p~n~p~n", [RoutesFile, Error])
      end.
  
  is_controller(State, Controller) -> 
      boss_files:is_controller_present(State#state.application, Controller, State#state.controllers).
  
  
negative.code: 
  get_match(_, []) ->
      undefined;
  get_match(Url, [Route|T]) ->
      Params = [
          {controller, Route#boss_route.controller},
          {action, Route#boss_route.action} | Route#boss_route.params
      ],
  	MP = Route#boss_route.pattern,
      {IndexedParams, Vars} = index_and_extract_params(Params),
      case re:run(Url, MP, [{capture, Vars, list}]) of
          {match, Matches} ->
              UpdatedParams = substitute_params(IndexedParams, Matches),
              NewAction = proplists:get_value(action, UpdatedParams),
              NewController = proplists:get_value(controller, UpdatedParams),
              Route#boss_route{
                  action=NewAction,
                  controller=NewController,
                  params = clean_params(UpdatedParams)
              };
          match ->
              Route;
          _ ->
              get_match(Url, T)
      end.
  
  index_and_extract_params(Params) ->
      {IndexedParams, Vars} = lists:mapfoldl(fun
          ({Key, Value}, Acc) when is_atom(Value) ->
              case atom_to_list(Value) of
                  [$$, C | Rest] when C >= $0, C =< $9 ->
                      {{Key, length(Acc)+1}, [list_to_integer([C|Rest])|Acc]};
                  "$"++VarName ->
                      {{Key, length(Acc)+1}, [VarName|Acc]};
                  _ ->
                      {{Key, Value}, Acc}
              end;
          ({Key, Value}, Acc) ->
              {{Key, Value}, Acc}
      end, [], Params),
      {IndexedParams, lists:reverse(Vars)}.
  
  