Если вдруг кому интересно, в TT можно ещё сделать следующим образом, уменьшив количество директив:
[% FOREACH [ { x => "y", z => "k" } ] %] [% x %][% z %] [% END %]
Но вообще, странно, что нет какого-нибудь блочного LET, что бы синтаксического мусора было ещё меньше. Понятно, что все такие блоки в BLOCK потом выделяются (и у меня тоже), но всё же