Contrary to English, in German there are quite a few words containing a hyphen, e.g. "Arbeiter-Unfallversicherung" (workers' accident insurance). By default, (La)TeX will only break such words after the present hyphen and discard all other breakpoints. This behaviour will often result in overfull hboxes for German texts.
There are at least three ways to achieve proper hyphenation, two of which use shorthands of the
babel package and none of which I consider really satisfactory:
Arbeiter"=Unfallversicherung. This allows every (otherwise legal) breakpoint and therefore may produce correct but unfavourable hyphenation (e.g. Arbeiter-Un-fallversicherung). This seems to be a method of last resort, suited for documents to be created with (almost) no manual intervention.
Ar\-beiter-Unfall\-ver\-si\-che\-rung. By manually setting allowed breakpoints, one can avoid unfavourable ones shortly before or after a present hyphen (I use a minimum of four characters as a rule of thumb). As a downside, one has to look up the correct breakpoints of the respective words. Also, the body of a LaTeX document may become quite cluttered.
Ar"-beiter-Unfall"-versicherung. This method (the one I'm currently using) also avoids unfavourable breakpoints and allows for a tidier document body. But one still has to look up the correct breakpoints.
To cut a long story short: Is there a way to automatically allow hyphenation of words already containing a hyphen, discarding breakpoints less than, say, four characters before or after the present hyphen?