I found that I've overlooked one another problem: helpers.
I naively thought that I can just register helper with all engines and everything will work. Bu it won't. Helpers behaviour variates a lot from one engine to another.
For example, templates.js calls helpers in three different ways.
Handlebars calls their helpers consistently but with its own very special way.
Jade has no special concept of helpers, you may use any functions and call it in any way.
templates.js expects that helper used in codition will return something boolean-like,
handlebars actually has no "conditional" helpers, it uses regular "block" helpers that may decide render child block or not.
Etc...
So the best I can imagine is register helpers separately for different engines
It looks redundant but I don't know can I automagically normalize all that zoo.
Any opinions, suggestions?
Sorry guys, pull request is delayed a little.