anchor.diff:  -define(SEPARATOR, $\/).
   -define(MATCH_ALL, '*').
   
  -%% @spec dispatch(Path::string(), DispatchList::[matchterm()]) ->
  +%% @spec wm_dispatch(Host::atom(), Path::string(), DispatchList::[matchterm()]) ->
   %%                                            dispterm() | dispfail()
   %% @doc Interface for URL dispatching.
   %% See also http://bitbucket.org/justin/webmachine/wiki/DispatchConfiguration
  -dispatch(PathAsString, DispatchList) ->
  +wm_dispatch(Host, PathAsString, DispatchList) ->
       Path = string:tokens(PathAsString, [?SEPARATOR]),
       % URIs that end with a trailing slash are implicitly one token
       % "deeper" than we otherwise might think as we are "inside"
  
positive.code:     Reply = case get_host_dispatch_list(HostAsString, State#state.rules, State#state.fallback_site, ReqData) of
          {ok, Host, DispatchList} ->
              {ok, RDHost} = webmachine_request:set_metadata(zotonic_host, Host, ReqData),
              case dispatch(PathAsString, DispatchList) of
                  {no_dispatch_match, UnmatchedPathTokens} ->
                      {{no_dispatch_match, Host, UnmatchedPathTokens}, RDHost};
                  {DispatchName, Mod, ModOpts, PathTokens, Bindings, AppRoot, StringPath} ->
  
negative.code: %%                                  {stop, Reason, State}
  %% @doc Load a new set of dispatch rules.
  handle_cast({set_dispatch_rules, Rules}, State) ->
      {noreply, State#state{rules=compile_regexps_hosts(Rules)}};
  
  %% @doc Trap unknown casts
  handle_cast(Message, State) ->
  