anchor.diff:  %% starts broadcasting advices.
   %% @end
   %%--------------------------------------------------------------------
  --spec all_nodes_for_dispatcher(Advice :: #dispatcher_lb_advice{}) -> [node()].
  -all_nodes_for_dispatcher(#dispatcher_lb_advice{all_nodes = AllNodes}) ->
  -    AllNodes.
  +-spec all_nodes_for_dispatcher(Advice :: #dispatcher_lb_advice{}, WorkerName :: atom()) -> [node()].
  +all_nodes_for_dispatcher(#dispatcher_lb_advice{all_nodes = AllNodes, singleton_modules = SM}, WorkerName) ->
  +    case proplists:get_value(WorkerName, SM) of
  +        undefined ->
  +            AllNodes;
  +        DedicatedNode ->
  +            DedicatedNode
  +    end.
   
   
   %%--------------------------------------------------------------------
  
positive.code:                         []
                  end,
              {Node, #dispatcher_lb_advice{should_delegate = ShouldDelegate,
                  nodes_and_frequency = NodesAndFrequency, all_nodes = Nodes}}
          end, NodesAndLoads),
      % TODO test if extra load is useful in DNS advices and maybe move it to a helper function
      % Calculate expected extra loads on each node.
  
negative.code:     %   should requests be rerouted to given node.
      nodes_and_frequency = [] :: [{Node :: node(), Frequency :: float()}],
      % List of all nodes (dispatcher needs such knowledge for multicalls)
      all_nodes = [] :: [node()],
      singleton_modules = [] :: [{Module :: atom(), Node :: node()}]
  }).
  
  
  