Page group can be used only when you can define a key for the list of pages. For example, items in a shopping cart is just an enumerated list, you cannot define a unique key to each item. Whereas, when you talk about a list of employee profiles, you could use either page list or page group, but I prefer to use a page group as you can directly access profile of "Employee X", rather than iterating the list of profiles and finding the profile of an employee.
Hope that makes sense and the determination of whether to use page group vs page list is primarily use case driven.
Page - When you want to get data of something which doesn't repeat. Eg. .EmployeeData (Property of type Page) - One employee has only one record in database
Page List - When you have number of items for something which cannot be grouped by some property. Eg. .EmployeeAccounts (Property of type Page List) - One employee can have multiple accounts.
Here, you can see even though type is same, domain is different, so, it cannot be grouped by type
Page Group- When you have number of items for something which can be grouped by some property which is only text without special characters Eg. .EmployeeAccounts (Property of type Page Group) - One employee can have multiple accounts.
You can create a property of type Page Group in your class and specify the Page Definition with your Address class then you can see all the properties of Address in your newly created Page Group as shown in my attachment.