Updated Controller to interact with updated API

- if a component has multiple entries it returns all of them as
alternative.
- if a component has an entry but the version doesn't match it is
alternative
- if a component has a match with an entry with a matching version
number it is returned as alternative