Multi-vpc Deploy using for_each

Can someone explain and show examples, practical ones, not from the terraform documentation on how to use for_each to deploy multiple vpcs within one project? Is this something you can do within the root module when calling child modules so it reiterates through all that code or do you have to use the for_each in the module within the resources? Rather then copying a vpc module multiple times and renaming it and then adding another section to root module to call that copied vpc how can this be streamlined?

as far I as understand this repo show what you are looking for.