It's also just annoyingly redundant, and breaks searching, completion, etc.:
@app.cond('is foo')
def is_foo():
IMO
@app.cond
def is_foo():
And 'losing' that you can omit the underscore to make it look a bit like English is much better. Plus then I can jump from its use back to this definition without any DSL-aware tooling (that probably doesn't exist).