Simplified how definition overriding works in definition sources
Extracted code from ArrayDefinitionSource into abstract ChainableDefinitionSource