Массив окончаний не полный, я это отметил в скобках при описании переменных.
Дополнил.
Интересно прочесть комментарии по поводу кода, может что то не так, или неплохо.
Хороший класс. http://namecaselib.com
Вторая версия кошернее первой. Правда, в цикле немного нагружает (ворует лишние 1,5 сек из генерации страницы), поэтому лучше кешировать.