recursively adds dependency choices