anchor.diff:  %%                                  {stop, Reason, State}
   %% @doc Load a new set of dispatch rules.
   handle_cast({set_dispatch_rules, Rules}, State) ->
  -    {noreply, State#state{rules=Rules}};
  +    {noreply, State#state{rules=compile_regexps_hosts(Rules)}};
   
   %% @doc Trap unknown casts
   handle_cast(Message, State) ->
  
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: -define(SEPARATOR, $\/).
  -define(MATCH_ALL, '*').
  
  %% @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
  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"
  