Yes it has to. That's the correct form, like "après-midi" or "grand-père". These forms are called "noms composés".
Does the "petit-déjeuner" have to be hyphenated? I feel like it should be right even if it wasn't