And you should never reveal it because if it is good someone will just register it before you do.
It has to make sense, sound right, and be easy to remember, and preferably be as short as possible. Using the word "and" works for something like "BreadAndButter" because that's how people actually talk. Something like "DrinksAndDancing" would be fine, and I think is better than "drinks-dancing" as far as being a memorable domain name.
You don't have to necessarily include the words in your domain name that you are about. What is a "face book" anyway? Most people have never spoken like that before facebook.com came along.
It seems to me that the sites that use hypens in the domain name tend to be spammy and unprofessional. And as someone mentioned, telling someone your domain name becomes a hassle. "Bread dash butter dot com" does not roll off the tongue as easily as "bread and butter dot com" and will be harder for people to remember.