The traditional linguistic definition of a "language" as opposed to a "dialect" is that speakers of different dialects will be able to communicate, while speakers of different languages will not; to put it another way, dialects are mutually intelligible, while languages are not. In actual practice, this is clearly not the case.

The example of German given above is very very good; "German" has incredibly wide variations within it. Swiss German movies or television, when played in Germany or Austria, require subtitles. A person with a working knowledge of both German and English will understand Dutch without very much difficulty. Dutch and Flemish (spoken in Belgium) are essentially the same language with two different names.

Head to Luxembourg and you find Luxembourgish, a hybrid of German and French.

In the Scandinavian department, the "Norwegian" language actually consists of two variants, Bokmål and Nynorsk, Bokmål actually being more similar to Danish than to Nynorsk.

Some dialects of English spoken in Scotland or Ireland are not understood without great difficulty by Americans.

In eastern Slovakia is spoken a variant of Slovak so influenced by the nearby Ukrainian that it is no longer mutually intelligible with Slovak, nor with Ukrainian. Meanwhile, Czech and Slovak are nearly mutually intelligible.

Speak Portuguese slowly to a Spanish-speaker and they'll understand, sorta. Same with Catalan or Italian.

And Chinese? Ha! No one even tries to claim that the so-called "Dialects" (Mandarin, Cantonese, Wu, &c.) are at all the same language.

And what about the little dialects that claim they actually are languages? Bayerisch, Occitan, Galego, Provençal, Friulian... These are languages without armies.

Trying to draw lines between languages is like trying to chop up the rainbow. Blue and Green are distinct colors, but what about Turquoise? Is it blue? Is it green? Is it its own color? To try to argue that is nothing but pointless.