Programming by demonstration (PBD) utilizes a human teacher to train a computer system to perform tasks within that system. This technique effectively improves productivity for many tasks, in many domains. Many tasks are repetitive in nature; these can be learned by PBD by recognizing the repetitions and generalizing these to iterative programs. We present a domain-independent approach to iteration learning by demonstration based on a dataflow model of user actions. We discuss alternatives to our approach and their tradeoffs. In doing so, we identify criteria useful for characterizing iteration learning by demonstration.