VIM has support for matching pairs of curly brackets, parentheses, and square brackets. This is great for editing C-style languages like PHP and Javascript. But what about matching HTML tags?

Notepad++ has had this feature for as long as I've been using it. Being able to spot where blocks of HTML begin and end is very useful. What I'm looking for is something like this for vim (see the green div tags):

(a bonus feature: highlighting unclosed HTML tags, like the red tag in this screenshot).

matchit has been proposed as a next-best-thing, but it requires an extra keystroke to use its functionality. I'd like be able to see where the blocks of HTML begin and end without an extra keypress.

I've trawled the internet to find something like this for vim. Apparently, I'm not the only one, according to 2 other StackOverflow questions and nabble.

I've almost resigned myself to vim not being able to visually match html tags. Is it possible for vim to do this?

Addendum: If it is not currently possible to do this with any existing plugins, does any vimscript wizard out there have any pointers on how to approach writing a suitable plugin?