Default M7 vibration dilema

So, a couple of days ago my phone stopped vibrating. Guessing it might be a problem with the rom I had at the time (ViperOne_5.5.1) I decided to download the updated version and flash it. Flashing was fine and again, everything worked fine but the vibration. So I thought of installing another rom to see if it was Viper causing the problems so I installed Android Revolution, still nothing.
I've now reverted back to Viper and after hours of research into this and installing several apps that would, supposedely, fix the problem, I gave up and reached the conclusion that it must be a hardware fault. But lo and behold, my phone vibrated twice today. Once this afternoon and again just a couple of minutes ago. I've been texting and receiving calls and emails all day long but these were the only times when it actually vibrated.
So my question is, does anyone have any idea of what's going on with my phone? And if so, is there any some sort of a solution to this?