Evidently, filter is applied first to inner string and then to outer string (i.e. {"{"&"|escape:"html"}"|escape:"html"}). In my opinion, this is not desired behavior. I would expect it to apply only to the outer bracket (i.e. {"{"&"}"|escape:"html"}).

The same problem with escape_html option. It escapes {"{"&"}"} code twice producing &amp;amp; . I can't imagine situation when somebody would want such double escapes.