EDIT: As of this response from @jeremyruston, this OP can be largely disregarded.
I just read this on Github (big
btw). Because the GH discussions are spread over so many different threads, I thought I’d make it worse and start another one here 
To aid discussion, here’s the relevant detail from your GH post:
\define my-filter()
[all[shadows+tiddlers]tag[todo]!has[draft.of]]
\end
<$if filter=<<my-filter>> >
<$then>
<h2>Todo items</h2>
<ul>
<$list filter=<<my-filter>> >
<li><$link /></li>
</$list>
</ul>
</$then>
</$if>
You will have read about Evan Balster’s plugin. I use it a lot. As I said in another GH thread, responding to Jermolene (@jeremyruston), I prefer this proposed layout ($then and $else becoming child nodes of $if) even though that would mean a massive (seriously – huge!) amount of editing for me should the proposal land in the core. That said, I totally get Jeremy’s stance that Even’s approach is inconsistent in walking the tree looking for siblings. I also think it “looks better”.
You can hear that “however” coming, right? 
The point (finally)
To make the editing job easier for me (and anyone else using Evan’s original), could you possibly see a way to support either a filter attribute or value and match attributes (as well as not)?
<$if value=<<my-var>> match="something">
<$if value={{tiddler!!field}} match="other thing">
<$if not value=<<my-var>> match="something else">
<$if value=<<my-var>> > <!-- "truthy" -->
<$if not value=<<my-var>> > <!-- "falsey" -->
<!-- And, while we're here... -->
<$else-if value=<<my-var>> match="and now for something completely different">
Aside: I think we need one source of information on GH for these discussions. If it already exits, I’d appreciate the link. Thanks.
Thanks for reading! 


I’ve got… let’s see, 194 UI tiddlers using
Just got a little inspiration, I may be back.