As your template shows, inside the loop pandoc creates a local variable with the same name as the array ('author' in your case). To iterate over an internal list, simply use the same "for" mechanism for the internal variable.
So you should use
TEMPLATE
$for(author)$ $for(author)$ $author$ $endfor$ $endfor
You can also use $ sep $ to specify a separator to use between list items.
Please note that if the internal list contains items with different values (not just the list), you should use a dictionary list.
Yaml
Author: - {name: Iain Banks, book: The Algebraist} - {name: Isaac Asimov, book: Foundation}
TEMPLATE
$for(author)$ $author.name$ wrote $author.book$ $endfor$
source share