While searching the web, I came across a list of rules from Eric Evans\' book that should be enforced for aggregates:
I don't think you should let the aggregate give your external code access to it's entities.
You tell your aggregate what you want to happen and it deals with it.
If we have an aggregate:Car. We don't care about petrol, and wheels, we just drive. We ask the car about things and it answers without giving references to the internals.
We ask: Do we have petrol? Yes. Not: Give me the tank object so I can check if we have petrol.