for(Map.Entry<String, C> entry : this.commands.entrySet()) {
if(this.matches(entry, cmdname)) {
if(candidate == null) {
candidate = entry;
} else {
throw new AmbiguousCommandException("Did you mean " +
entry.getKey() + " or " + candidate.getKey() + "?");
}
}
}