def _reindex_non_unique(self, target):
new_target, indexer = self.reindex(target)<EOL>new_indexer = None<EOL>check = indexer == -<NUM_LIT:1><EOL>if check.any():<EOL><INDENT>new_indexer = np.arange(len(self.take(indexer)))<EOL>new_indexer[check] = -<NUM_LIT:1><EOL><DEDENT>cats = self.categories.get_indexer(target)<EOL>if not (cats == -<NUM_LIT:1>).any():<EOL><INDENT>new_target = self._shallow_copy(new_target)<EOL><DEDENT>return new_target, indexer, new_indexer<EOL>
reindex from a non-unique; which CategoricalIndex's are almost
        always