<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def register_component(self, path):
 """ Registers a Component using given path. Usage:: True {u'core.tests_component_a': <manager.components_manager.Profile object at 0x11c9eb0>} :param path: Component path. :type path: unicode :return: Method success. :rtype: bool """


        component = foundations.strings.get_splitext_basename(path)
        LOGGER.debug("> Current Component: '{0}'.".format(component))
        profile = Profile(file=path)
        if profile.initializeProfile():
            if os.path.isfile(os.path.join(profile.directory, profile.package) + ".py") or \
                    os.path.isdir(os.path.join(profile.directory, profile.package)) or \
                            os.path.basename(profile.directory) == profile.package:
                self.__components[profile.name] = profile
                return True
            else:
                raise manager.exceptions.ComponentModuleError(
                    "{0} | '{1}' has no associated module and has been rejected!".format(self.__class__.__name__,
                                                                                         component))
        else:
            raise manager.exceptions.ComponentProfileError(
                "{0} | '{1}' is not a valid Component and has been rejected!".format(self.__class__.__name__,
                                                                                     component))