private static Double subCost(String phone1, String phone2) {
    if (phone1.equalsIgnoreCase(phone2)) return 0.0;
    if (PhoneUtils.isVowel(phone1) && PhoneUtils.isVowel(phone2)) return 0.0;
    if (!PhoneUtils.isVowel(phone1) && !PhoneUtils.isVowel(phone2)) return 1.0;
    // Severely penalize consonant vowel matching.
    return 20.0;
  }