code: @Override
  	public int compareTo(DestinationPatternsMessageCondition other, Message<?> message) {
  		WampMessage wampMessage = (WampMessage) message;
  		String destination = wampMessage.getDestination();
  
  		Comparator<String> patternComparator = this.pathMatcher
  				.getPatternComparator(destination);
  
  		Iterator<String> iterator = this.patterns.iterator();
  		Iterator<String> iteratorOther = other.patterns.iterator();
  		while (iterator.hasNext() && iteratorOther.hasNext()) {
  			int result = patternComparator.compare(iterator.next(), iteratorOther.next());
  			if (result != 0) {
  				return result;
  			}
  		}
  		if (iterator.hasNext()) {
  			return -1;
  		}
  		else if (iteratorOther.hasNext()) {
  			return 1;
  		}
  		else {
  			return 0;
  		}
  	}
docs: Compare the two conditions based on the destination patterns they contain. Patterns
  are compared one at a time, from top to bottom via
  {@link org.springframework.util.PathMatcher#getPatternComparator(String)}. If all
  compared patterns match equally, but one instance has more patterns, it is
  considered a closer match.
  <p>
  It is assumed that both instances have been obtained via
  {@link #getMatchingCondition(Message)} to ensure they contain only patterns that
  match the request and are sorted with the best matches on top.