If I call addRequestParams() with no argument, things work as expect. On the other hand, this does not work:
#set($ignoreList = ['foo'])
I get an invalid reference log message and the above "$link..." text is rendered as written instead of evaluating successfully.
The problem is that the ignoreList is a List and it needs to be String. Velocity will auto-convert Lists into Object if appropriate, but the resulting object type is Object and not String.
There does not appear to be a way to create a String from a Velocity template, so using addRequestParams and the other, similar methods will be very difficult to use with an argument.
LinkTool.addRequestParams and friends should be modified to accept Object arguments.