anchor.diff:  %% e.g. [ /A/B/+ , /A/B/C ] can be reduced to [/A/B/+]
   %% @end
   min_cover(Filters) ->
  -    min_cover([],Filters).
  -
  -min_cover(Maximals,[]) ->
  -    Maximals;
  -
  -min_cover(Maximals,[H|T]) ->
  -    min_cover(merge_max(Maximals,H),T).
  -
  -merge_max(Maximals,NewMax) ->
  +    lists:foldl(fun maybe_add_new_max/2,[],Filters).
  +
  +maybe_add_new_max(NewMax,Maximals) ->
       DedupL = [ Max || Max <- Maximals, not is_covered_by(Max,NewMax) ],
       case lists:any(fun(Max) -> is_covered_by(NewMax,Max) end, DedupL) of
           true    -> DedupL;
  
positive.code:     end.
  
  match_with_max_qos(Subs = [H|_]) ->
      lists:foldl(fun(El = {Filter,QoS},Acc = {MinFilter,MaxQoS}) ->
                      ElIsBetterMatch = QoS > MaxQoS
                                          orelse (QoS == MaxQoS andalso
                                                          (is_covered_by(Filter,MinFilter)
                                                              orelse (not is_covered_by(MinFilter,Filter)
                                                                          andalso Filter < MinFilter)
                                                          )
                                                  ),
                      case ElIsBetterMatch of
                          true  -> El;
                          false -> Acc
                      end
                  end, H,Subs).
  
  %% normalize(<<Pattern/binary>>) ->
  %%     LPattern = split(Pattern),
  
negative.code: 
  
  %% @doc
  %% Picks a the best matching Sub with highest QoS.
  %% Best means one that:
  %%      - matches the Topic
  %%      - has the highest QoS
  %%      - Plus some arbitrary criteria
  %% @end
  best_match(Subs,Topic) ->
      Matches = lists:filter(fun({Filter,_}) -> is_covered_by(Topic,Filter) end, Subs),
  