BF: aInfo could be modified by actions, causing unexpected behaviour

A separate copy of aInfo is passed to each action
explicit copy should not be necessary since dict(*args) in constructor would make a shallow copy anyways:

```
In [4]: d = {1:2, 2:[1]}; d2=dict(d); d3=dict(d.copy()); d2[3] = d3[3] = 1; d[2].append(1); print d, d2, d3
{1: 2, 2: [1, 1]} {1: 2, 2: [1, 1], 3: 1} {1: 2, 2: [1, 1], 3: 1}
```