Best SEO practice is to get at least one of your primary keywords in domain or sub domain name of your website. You can use hyphens (-) to separate multiple keywords
Hyphens don't help the search engines figure out the the individual words in your URL are. They can usually figure this out just fine without hyphens. Hyphens may make it easier for people to figure out the individual words in your domain name, especially at first glance. But they are a nightmare when you are giving your URL to people verbally. Saying "visit my awesome web site dot com," is much easier, and less prone to possible error than having to say "visit my hyphen awesome hyphen website dot com."
Hyphens look tacky in my opinion ... also sub domains probably should not be used for most sites (exceptions being massive sites like amazon / google) ... better off using a sub directory as sub domains are basically viewed as a separate site to the main domain and therefore adding nothing to the SEO of your main site.