[engine] Allow chained name_source

well, we have a somewhat difficult decision here.

Former implementation iterated the name_source list until it found the first defined name_source.
Current implementation may accept undefined name_sources, but they must have a name_source as well.

In both implementations only one name_source is actually used, right?.