Ya envie mi funcion, tuve que eliminar muchos comentarios para dejar menos de 3000 caracteres en el MP... tambien es demasiado codigo.
Edito para agregar las cadenas de prueba que hemos propuesto y que son las que usare para probar los aportes:
Código PHP:
Ver original 'abcd' => 'a-d',
'hijlbcd' => 'h-jlb-d',
'ihdlkioabcihgfe' => 'ihdlkioa-ci-e',
'cba' => 'c-a',
'zyx' => 'z-x',
'abcdcba' => 'a-d-a',
'abcddcba' => 'a-dd-a',
'abcba' => 'a-c-a',
'abcbabcdefgfec' => 'a-c-a-g-ec',
'abcdefghijklmnopqrstuvwxyz' => 'a-z',
'abhijklmnopqrstucdefgvwxyz' => 'abh-uc-gv-z',
'zzzyxqrstuv' => 'zzz-xq-v',
'abzyxwvutuvwxabcaaaabcabcdefedcbaghkji' => 'abz-t-xa-caaaa-ca-f-aghk-i',
'bbbabcdefabcxyzyxwabaopqrstu' => 'bbba-fa-cx-z-wabao-u',
'zyxwvutsrstabbabcdcbaaaxyzbbbcdehijwvtg' => 'z-r-tabba-d-aaax-zbbb-eh-jwvtg',
'aabbccabcdfghjjihijklmlknn' => 'aabbcca-df-hjj-h-m-knn',
'ttsrrqponmlkjiihgfedcbbcdefghijklmnopqrstuvwxyy' => 'tt-rr-ii-bb-yy',
);