A command nobreakdash is provided to suppress the possibility of a linebreak after the following hyphen or dash. For example, if you write `pages 1--9' as |pages 1--9| then a linebreak will never occur between the dash and the 9. You can also use nobreakdash to prevent undesirable hyphenations in combinations like |p-adic|. For frequent use, it's advisable to make abbreviations, e.g.,
\newcommand{\p}{$p$\nobreakdash}% for "\p-adic"
\newcommand{\Ndash}{\nobreakdash--}% for "pages 1\Ndash 9"
% For "\n-dimensional":
\newcommand{\n}[1]{$n$\nobreakdash-\hspace{0pt}}
The last example shows how to prohibit a linebreak after the hyphen but
allow normal hyphenation in the following word. (It suffices to add a
zero-width space after the hyphen.)