def find_double_to_attempt
matches = DoubleMatches.new(doubles).find_all_matches(args)
unless matches.exact_terminal_doubles_to_attempt.empty?
return matches.exact_terminal_doubles_to_attempt.first
end
unless matches.exact_non_terminal_doubles_to_attempt.empty?
return matches.exact_non_terminal_doubles_to_attempt.last
end
unless matches.wildcard_terminal_doubles_to_attempt.empty?
return matches.wildcard_terminal_doubles_to_attempt.first
end
unless matches.wildcard_non_terminal_doubles_to_attempt.empty?
return matches.wildcard_non_terminal_doubles_to_attempt.last
end
unless matches.matching_doubles.empty?
return matches.matching_doubles.first
end
return nil
end