How to make a post accessible from multiple post type slugs?

Found the way, For anyone looking for a method in the future I’ll mention how I made it work.

add_action( 'parse_request', function($query){  
    $post_type = $post_name = NULL;

    if (isset($query->query_vars['post_type']) && in_array($query->query_vars['post_type'], ['colors', 'shapes'])) {
        $post_type = $query->query_vars['post_type'];
        $post_name = $query->query_vars['name'];
    } elseif (isset($query->query_vars['pagename']) &&  isset($query->request) && isset(explode("https://wordpress.stackexchange.com/", $query->request)[0]) && in_array(explode("https://wordpress.stackexchange.com/", $query->request)[0], ['slug-with-no-post-type', 'another-slug-with-no-post-type'])) {
        $division = explode("https://wordpress.stackexchange.com/", $query->request)[0];
        if (isset(explode("https://wordpress.stackexchange.com/", $query->request)[1])) $post_type = explode("https://wordpress.stackexchange.com/", $query->request)[1];
        unset($query->query_vars['pagename']);
    }

    if($post_type && $post_name){
        if ($post = get_page_by_path($post_name, 'OBJECT', ['colors', 'shapes'])) {
            if (isset($post->post_type) && $post->post_type != $post_type) {
                $query->query_vars['post_type'] = $post->post_type;
                $query->query_vars['post_type_template'] = $post_type;
                $query->query_vars['name'] = $post_name;
            }
        }
    }
});