Do not use has_key in snippets, as this is no longer available in python3.
Evaluate word boundaries with Vim, not r'\b'

Certain non ALGOL-derived languages (notably LISP derivatives) do not
share the alphanumeric + underscore definition of a word character.

Fortunately, each language FileType has its own definition of a word
character, which Vim's regex engine uses when matching against the
boundary classes \< and \>.

We change the word matching routine of 'w' snippets to use Vim's regex
engine instead of a static pattern.
Merge branch 'guns-vim-word-boundaries'