None of the above.
Now I have your attention
First and foremost; attitude. Everything else is secondary.
Otherwise the process I've chosen is a coding test, so a take home assignment basically. But I don't make the decision based off the test alone. I also look at if they have any contributions, not because I care more about open source or anything, all I want to do is be able to determine how pro-active a candidate is and their level of competency. Previous code examples, as well as the test, aid in this.
Definitely stay away from Whiteboard interviews. That was the old way of doing things, the candidate isn't in an exam hall anymore. So definitely stay away from these.
Pair programming assignments have their place, but as an interview process I'd only do it if they show promise but I was unsure how they would work in a team. But usually this isn't required.
Referrals are useful, and could (I say could because this has never swayed my decision before) aid in the decision process but I try and find/let the candidates code speak for itself.
Final Note:
Each company and therefore each company's needs are different. This means that processes and best practises will always be different. They may be well adopted methods but really, these are all altered in some small way.
Try out different things, if one doesn't give you the information then change it or choose another method :).
The first time you hire someone can be a scary process because you're letting them into the family, your business, so it's difficult. Their needs to be that feeling of trust, from both parties, in order to get the best for/from both candidate and employer.
Hope it helped :)