I think it's a good choice to have only one snippet with lot of parameter, it let the choice to the user. Perhaps the author of the original DropMenu is ok to implement your work.
It's afraid me to have lot of snippets with lot of hacks with lots of versions

Can you help me for the example use of the keywordRegexp parameter.
I want't discard page keyworded with 'blog', 'news' and allow those with 'site' and 'web'
Here are a couple of examples, which are pretty much a cut-and-paste job from my setup. Obviously change the details of any variables (and snippet name) if they're different in your setup.
The following will only output items which have 'site' or 'web' in a template variable called 'keywords':
[!DropMenuMindspillDotNet? &startDoc=`[*id*]` &levelLimit=`1` &here=`current` &selfAsLink=`true` &showDescription=`true` &showAllInMenu=`true` &useWeblink=`true` &tvRegexpField=`keywords` &tvRegexpString=`(site|web)`!]
The following will only output items which don't have 'blog' or 'news' in a template variable called 'keywords':
[!DropMenuMindspillDotNet? &startDoc=`[*id*]` &levelLimit=`1` &here=`current` &selfAsLink=`true` &showDescription=`true` &showAllInMenu=`true` &useWeblink=`true` &tvRegexpField=`keywords` &tvRegexpString=`(blog|news)` &joinMethod=`not`!]
Bear in mind that because of the way MODx stores template variables in the database (i.e. it doesn't if it's value is blank), you should give the 'keywords' TV a value every time you create a page, even if it's something like '-'.
Hope that helps.
Steph