Angular2 forma ControlGroup que tiene un número indefinido de Control

¿Cómo gestionar con Angular2 un formulario que contiene un número indefinido de campo?

En mi caso, necesito crear un sitio desde donde el usuario pueda agregar y eliminar algunos bloques de archivos. Es como una libreta de direcciones donde el usuario puede agregar una o diez direcciones. Y cada dirección tenía algunos campos como calle, número de calle, etc.

Mi look así:

let address = fb.group({
        street: fb.control(null, Validators.required),
        streetNumber fb.control(null, Validators.required)
    });

this.userForm = fb.group({
        name: fb.control(null, Validators.required),
        firstName: fb.control(null, Validators.required),
        address: fb.group({
            1: address
            })
        });

Realmente no sé cómo administrar esto en la plantilla.

Intenté escribir algo así en la plantilla, pero obviamente, no funciona ...

<form [ngFormModel]="userForm">
<input type="text" ngControl="name" #name="ngForm"/>
<input type="text" ngControl="firstName" #firstName="ngForm"/>

<div *ngFor="#address of userForm.controls['address'].controls">
    <input type="text" ngControl="street" #street="ngForm"/>
    <input type="text" ngControl="streetNumber" #streetNumber="ngForm"/>
</div>

EDITAR

He hecho un Plunker para una mejor explicación.http://plnkr.co/edit/ffYe1479WnxYOQrbxwLF?p=preview

Respuestas a la pregunta(1)

Su respuesta a la pregunta