Транслитерация строки для URL

Получаем из строки на русском языке транслитом нормальный человеческий URL. Алгоритм работы простой: русские символы в транслит, английские и цифры сохраняются, пробелы заменяются на тире, все остальные символы вырезаются подчистую.