angular/angular.js — pull request #4662 by pgilad (2013-10-26 13:25:03+00:00)
Title: Allow directive's require to be passed an object instead of an array

so instead of ['^country', '^state'], you can now use:
require : { countryCtrl: '^country', stateCtrl: '^state'}

and then in the link function:
//much better syntax than relying on array locations
link : function (scope, element, attrs, ctrls) {
ctrls.countryCtrl.makeAnnouncement('from city');
ctrls.stateCtrl.makeLaw('Jump higher!');
}