support specifying steps for list items
fix a repeated iteration bug

When looping through several possibly iterating controls,
and due to short-circuit evaluation, `Next()` was only
called on the first one actually iterating.